#ifndef __MPP_DISPLAY_ELEMENT_H__
#define __MPP_DISPLAY_ELEMENT_H__

#include "mpp_display_dev.h"


class mpp_display_element:protected mpp_display_dev
{
    public :
        mpp_display_element(string dev_path);
        virtual ~mpp_display_element();
    protected:

    virtual vector<drmModeConnectorPtr>  mpp_element_create_connect(int fd,uint32_t count_connectors,uint32_t *connectors);
    virtual void mpp_element_distroy_connect(int fd, vector<drmModeConnectorPtr> connector);

    virtual vector<drmModeEncoderPtr>  mpp_element_create_encoder(int fd,uint32_t count_encoders,uint32_t *encoders);
    virtual void mpp_element_distroy_encoder(int fd, vector<drmModeEncoderPtr> encoders);


    virtual vector<drmModeCrtcPtr> mpp_element_create_crtc(int fd,uint32_t count_crtcs,uint32_t *crtcs);
    virtual void mpp_element_distroy_crtc(int fd,vector<drmModeCrtcPtr> crtc);

    protected:
        virtual   int  mpp_planes_create(int fd,uint32_t count_crtc) = 0;
        virtual   void  mpp_planes_distroy() = 0;
    private:

        // uint32_t num_connectors;
        // drmModeConnectorPtr *connectors;

        // uint32_t num_encoders;
        // drmModeEncoderPtr *encoders;

        // uint32_t num_crtcs;
        // drmModeCrtcPtr *crtcs;


};

#endif